/// <reference path="bootstrap-reboot.scss" />

.placeholder {
  --placeholder-opacity-max: #{$placeholder-opacity-max};
  --placeholder-min-height: 1em;

  display: inline-block;
  min-height: var(--placeholder-min-height);
  vertical-align: middle;
  cursor: wait;
  background-color: currentcolor;
  opacity: var(--placeholder-opacity-max);

  &.btn::before {
    display: inline-block;
    content: "";
  }
}

// Sizing
.placeholder-xs {
  --placeholder-min-height: .6em;
}

.placeholder-sm {
  --placeholder-min-height: .8em;
}

.placeholder-lg {
  --placeholder-min-height: 1.2em;
}

// Animation
.placeholder-glow {
  .placeholder {
    animation: placeholder-glow 1.2s ease-in-out infinite;
  }
}

@keyframes placeholder-glow {
  50% {
    opacity: $placeholder-opacity-min;
  }
}

.placeholder-wave {
  -webkit-mask-image: linear-gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min * 1.75)) 75%, $black 95%);
  mask-image: gradient(130deg, $black 55%, rgba(0, 0, 0, (1 - $placeholder-opacity-min * 1.75)) 75%, $black 95%);
  mask-size: 200% 100%;
  -webkit-mask-size: 200% 100%;
  animation: placeholder-wave 1s linear infinite;
}

@keyframes placeholder-wave {
  100% {
    -webkit-mask-position: -200% 0%;
    mask-position: -200% 0%;
  }
}
